﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using PACS.Data;
using System.Data;
using WoSoft.PACS.Data.Models;

namespace WoSoft.PACS.Data.TemplateData
{
    public class TemplateDataService:Db
    {
        /// <summary>
        /// 查询所有行记录
        /// </summary>
        /// <returns></returns>
        public DataTable GetAllData()
        {
            var dt = SqlDatabase.Sql("SELECT ID,原型类型,原型名称,原型简码,是否默认 FROM 报告原型 ").QuerySingle<DataTable>();
            return dt;
        }

        /// <summary>
        /// 获取默认报告模板
        /// </summary>
        /// <returns></returns>
        public byte[] GetDefaultContent(string type)
        {
            var sql = "select 原型内容 from 报告原型 where 是否默认 = 1 and 原型类型='" + type + "'";
            var dat = this.SqlDatabase.Sql(sql).QuerySingle<dynamic>();
            if (dat!=null)
            {
                return dat.原型内容 as byte[];
            }

            return null;
        }


        /// <summary>
        /// 插入数据
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public int Insert(TemplateModel model)
        {
            return this.SqlDatabase.Insert("报告原型")
                .Column("ID", model.ID)
                .Column("原型名称", model.Name)
                .Column("原型简码", model.Code)
                .Column("原型类型", model.Type)
                .Column("原型内容", model.Content)
                .Column("是否默认", model.IsDefault)
                .Execute();
        }

        //更新
        public int Update(TemplateModel model)
        {
            return this.SqlDatabase.Update("报告原型")
                .Column("原型名称", model.Name)
                .Column("原型简码", model.Code)
                .Column("原型类型", model.Type)
                .Column("原型内容", model.Content)
                .Column("是否默认", model.IsDefault)
                .Where("ID", model.ID)
                .Execute();
        }

        //更新默认
        public void UpdateDefault(string id,string type)
        {
            //var sql = "update 报告原型 set 是否默认=0 and 原型类型='" + type + "'";
            //var sql2 = "update 报告原型 set 是否默认=1 where ID = @ID and 原型类型=@Type";
            this.SqlDatabase.Update("报告原型")
                .Column("是否默认", 0)
                .Where("原型类型", type)
                .Execute();
            this.SqlDatabase.Update("报告原型")
                .Column("是否默认", 1)
                .Where("ID", id)
                .Where("原型类型", type)
                .Execute();
        }

        //删除默认
        public void DeleteDefault(string id)
        {
            var sql = "delete 报告原型 where ID = @ID";
            this.SqlDatabase.MultiResultSql
                .Sql(sql)
                .Parameter("ID", id)
                .Execute();
        }
    }
}
